home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 42 / Amiga Format AFCD42 (Issue 126, Aug 1999).iso / -serious- / programming / other / gui4cli / g4c / ced / fsearch.gc < prev    next >
Text File  |  1999-05-14  |  17KB  |  730 lines

  1. G4C
  2.  
  3. ; $VER: FSearch.gc 1.2
  4. ; by D.Keletsekis 20/9/98
  5.  
  6. ; GUI for the FSearch command
  7. ; This is a slightly altered version of the FSearch.gc gui as
  8. ; it exists in the main Gui4Cli archive. The differences are
  9. ; that this depends on CEd being there.
  10.  
  11. ; You must have FSearch 1.1 in the "c:" or "guis:c" dirs
  12.  
  13. ; This gui can be called as :
  14. ; GUILOAD fsearch.gc SearchPath Text2Find
  15.  
  16. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  17. ;
  18. ;                            Globals
  19. ;
  20. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  21.  
  22. WINBIG 103 22 409 159 'FSearch for CEd by D.Keletsekis'
  23. winsmall -1 20 150 -1
  24. WinType 11110001
  25. resinfo 8 660 270
  26. BOX 2 13 406 128 OUT button
  27.  
  28. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  29. ;
  30. ;                           System events
  31. ;
  32. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  33.  
  34. xOnLoad searchpath findtxt
  35. setgad FSearch.gc 101  hide
  36. setgad FSearch.gc 201/250 hide
  37. setgad FSearch.gc 300/350 hide
  38. setgad FSearch.gc 325/333 off   ; size
  39. setgad FSearch.gc 305/306 off   ; date
  40. ; the default values
  41. file = '#?'
  42. subdirs = ALL
  43. case = ''
  44. strsearch = On
  45. output = gui
  46. format = 'VERBOSE'
  47. nobin = ''
  48. nopath = ''
  49. details = ''
  50. highlight = HL
  51. min_size = ''
  52. max_size = ''
  53. from = ''
  54. to = ''
  55. header = ''
  56. GuiOpen FSearch.gc
  57. update fsearch.gc 2 $searchpath
  58. update fsearch.gc 7 $findtxt
  59. setgad fsearch.gc 7 on
  60. ifexists file c:fsearch
  61.    fsprog = c:FSearch
  62. elseifexists file guis:c/fsearch
  63.    fsprog = guis:c/fsearch
  64. else
  65.    ezreq 'Could not find the FSearch binary\nYou *must* copy it to C:' 'OK' ''
  66. endif
  67.  
  68. xOnClose
  69. GuiQuit FSearch.gc
  70. GuiQuit fsearch.ft      ; filetypes gui
  71. GuiQuit fsearch.rmb
  72. GuiQuit fsearch.pop
  73.  
  74. xONRMB
  75. if $guimode = RES
  76.    guiopen fsearch.rmb
  77. endif
  78.  
  79.  
  80. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  81. ;
  82. ;                          Gui Mode cycler
  83. ;
  84. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  85.  
  86. ; ---- a cycler to change the gui to its various modes
  87.  
  88. XCYCLER 2 0 186 13 "" guimode
  89. gadhelp 'Click to change the GUI mode - use "m" for shortcut'
  90. gadid 500
  91. gadkey m            ; use 'm' to cycle it
  92. CStr "FSearch Parameters"  PAR
  93. CStr "FSearch Settings" SET
  94. cstr "Date, Size & Type"  DATE
  95. cstr "FSearch Results" RES
  96. gosub FSearch.gc guichange
  97.  
  98. xroutine guichange
  99. docase $guimode
  100.   case = PAR
  101.        setgad FSearch.gc 1/13  show
  102.        setgad FSearch.gc 21/24 show
  103.        setgad FSearch.gc 101   hide
  104.        setgad FSearch.gc 300/350 hide
  105.        setgad FSearch.gc 201/250 hide
  106.        break
  107.   case = SET
  108.        setgad FSearch.gc 1/13  hide
  109.        setgad FSearch.gc 21/24 hide
  110.        setgad FSearch.gc 101   hide
  111.        setgad FSearch.gc 300/350 hide
  112.        setgad FSearch.gc 201/250 show
  113.        break
  114.   case = DATE
  115.        setgad FSearch.gc 1/13    hide
  116.        setgad FSearch.gc 21/24   hide
  117.        setgad FSearch.gc 101     hide
  118.        setgad FSearch.gc 201/250 hide
  119.        setgad FSearch.gc 300/350 show
  120.        break
  121.   case = RES
  122.        setgad FSearch.gc 1/13  hide
  123.        setgad FSearch.gc 21/24 hide
  124.        setgad FSearch.gc 101   show
  125.        setgad FSearch.gc 300/350 hide
  126.        setgad FSearch.gc 201/250 hide
  127.        break
  128. endcase
  129. ; redraw FSearch.gc
  130. ; NEW - using PARTREDRAW - looks great eh?
  131. partredraw FSearch.gc 4 15 402 124
  132.  
  133. if $guimode != RES
  134.     SetWintitle FSearch.gc 'FSearch by D. Keletsekis'
  135. endif
  136.  
  137.  
  138. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  139. ;
  140. ;                          Parameters
  141. ;
  142. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  143.  
  144. ; -------------------------- choose searchpath(s)
  145.  
  146. BOX 10 20 388 64 in button
  147. gadid 12
  148.  
  149. CTEXT 20 25 "Search in :" #screen 8 2 0 0001
  150. gadid 1
  151.  
  152. XTEXTIN 18 37 350 13 "" searchpath sys: 100
  153. gadhelp 'This is the path FSearch will start searching from'
  154. gadid 2
  155. setgad FSearch.gc 5 on         ; set cursor to next textin gad
  156.  
  157. XBUTTON 370 37 18 13 "<"      ; choose a searchpath
  158. gadhelp 'Will pop-up a requester to let you choose a path'
  159. gadid 3
  160. ReqFile -1 -1 300 200 'Choose SearchPath:' DIR searchpath $searchpath
  161. update FSearch.gc 2 $searchpath
  162.  
  163. ; ------------------------ filename pattern
  164.  
  165. CTEXT 21 54 "File name pattern :" #screen 8 2 0 0001
  166. gadid 4
  167.  
  168. XTEXTIN 18 65 350 13 "" file '#?' 100
  169. gadhelp 'Enter the filepattern wanted - #? means all files'
  170. gadid 5
  171. setgad FSearch.gc 7 on         ; set cursor to next textin gad
  172.  
  173. XBUTTON 370 65 18 13 "<"
  174. gadid 4
  175. guiopen fsearch.ft :fsearch.pat 5
  176.  
  177. XCHECKBOX 364 24 25 9 "_Include sub-directories" subdirs ALL "" ON
  178. gadhelp 'Check ON to make FSearch recurse through all subdirectories'
  179. gadid 11
  180.  
  181. ; ---------------------- text search
  182.  
  183. CTEXT 22 99 "Find text :" #screen 8 2 0 0001
  184. gadid 6
  185.  
  186. XTEXTIN 18 111 371 13 "" findtxt '' 100
  187. gadhelp 'Enter the text you want to find - or nothing for no text search.'
  188. gadid 7
  189.  
  190. BOX 9 92 389 37 IN BUTTON
  191. gadid 8
  192.  
  193. XCHECKBOX 360 97 25 9 "Case sensitive" case CS "" OFF
  194. gadhelp 'Check ON to make the search Case Sensitive'
  195. gadid 9
  196.  
  197.  
  198. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  199. ;
  200. ;                       Search results listview
  201. ;
  202. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  203.  
  204. XLISTVIEW 4 15 400 124 "" resfile "" 10 MULTI
  205. gadhelp "Display search results - Click RMB to save list contents"
  206. gadid 101
  207. gadfont #mono 8 001
  208.  
  209.    ; deal with selection double clicked
  210.    ; if it's a line 
  211.    if $resfile[0][1] = ' '
  212.    or $resfile[0][4] = '›33m'
  213.  
  214.        if $resfile[0][4] = '›33m'   ; cut off highlighting
  215.           cutvar resfile[4] cut word  1 resnum
  216.        else
  217.           cutvar resfile cut word 1 resnum    ; get the line number
  218.        endif
  219.        extract resnum clean resnum
  220.        cutvar resnum cut char -1 ''
  221.        while $$lv.rec[0][1] == ' '  ; get the parent file
  222.        or $$lv.rec[0][4] == '›33m'
  223.        and $$lv.line > ''
  224.           lvgo prev
  225.        endwhile
  226.        resfile = $$lv.rec
  227.        if $resfile[0][4] = '›32m'   ; cut off highlighting
  228.           cutvar resfile[4] cut word 1 resfile
  229.           cutvar resfile cut char -4 temp   ; trim the csi
  230.        endif
  231.        gosub fsearch.gc gotoline
  232.  
  233.    ; use popup window to deal with choice, if it's a file
  234.    elseif $resfile[0][1] != '*'
  235.  
  236.        if $resfile[0][4] = '›32m'   ; cut off highlighting
  237.           cutvar resfile[4] cut word  1 resfile
  238.           cutvar resfile cut char -4 temp   ; trim the csi
  239.        endif
  240.        gosub fsearch.gc gotoline
  241.  
  242.    endif 
  243.  
  244.  
  245. ; routine to goto file/line of item clicked in lv
  246. xROUTINE gotoline
  247.    sendrexx $cedbar.gc/cedport 'jump to file $resfile'
  248.    if $$rexxret = 0  ; file not loaded
  249.       sendrexx $cedbar.gc/cedport 'open new'
  250.       sendrexx $cedbar.gc/cedport 'open $resfile'
  251.    endif
  252.    sendrexx $cedbar.gc/cedport 'expand view'
  253.    sendrexx $cedbar.gc/cedport 'jump to line $resnum'
  254.  
  255. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  256. ;
  257. ;                           FSearch settings
  258. ;
  259. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  260.  
  261. ; ------- output mode
  262.  
  263. BOX 23 28 175 71 in button
  264. gadid 201
  265.  
  266. XRADIO 156 38 18 9 output 2
  267. gadhelp 'Choose where you want the output from FSearch to go to'
  268. gadid 202
  269. rstr 'Output to Gui'   gui
  270. RStr 'Output to Shell' cli
  271.  
  272. ; ----------- Output format 
  273.  
  274. XRADIO 156 68 19 9 format 2
  275. gadhelp 'Says it all really..'
  276. gadid 203
  277. RStr  'Show text found' 'VERBOSE'
  278. RStr  'Filenames only'  ''
  279.  
  280. ; ------------ Settings - checkboxes
  281.  
  282. BOX 214 28 176 70 IN BUTTON
  283. gadid 208
  284.  
  285. XCHECKBOX 350 35 25 9 'Highlight results' highlight "HL" "" ON
  286. gadhelp 'Bask in the glory of colored ansi text - (OS V39)'
  287. gadid 205
  288.  
  289. XCHECKBOX 350 50 25 9 "Check binary files" nobin "" "NOBIN" ON
  290. gadhelp 'Check ON to make FSearch search binary files'
  291. gadid 211
  292.  
  293. XCHECKBOX 350 65 25 9 "Show File Path" nopath "" "NOPATH" ON
  294. gadhelp 'Will output filenames using their full path'
  295. gadid 212
  296.  
  297. XCHECKBOX 350 79 25 9 "Show File Details" details "INFO" "" OFF
  298. gadhelp 'Will also print out file size, date etc'
  299. gadid 213
  300.  
  301. ; ------- help & save settings
  302.  
  303. XBUTTON 299 119 91 13 "Help.."
  304. gadhelp 'Loads the FSearch.doc - the full Gui4Cli installation is needed'
  305. guiload :reader.gc :FSearch.readme
  306. gadid 220
  307.  
  308.  
  309. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  310. ;
  311. ;                               DO IT!
  312. ;
  313. ; ++++